What changed?
As of PR #4554, supported libraries such as OpenAI are automatically patched when Weave is loaded. You no longer need to manually wrap them, as was the case previously:Weave will generally handle this automatically. However, there may be edge cases.
Usage instructions
You can either use CommonJS and ESM.CommonJS
For CommonJS, no special configuration is required. Automatic patching works out of the box. Simply install Weave:ESM
For ESM, use Node’s--import
flag to enable auto-instrumentation. The weave/instrument
module is available as long as the weave
package is installed.
- Install Weave:
- Import the
weave/instrument
module:
Advanced usage and troubleshooting
This section covers edge cases and workarounds for when the TypeScript SDK’s automatic patching doesn’t work as expected. For example, ESM-only environments, bundler setups like Next.js, or constrained runtime environments may cause unexpected issues. If you’re seeing missing traces or integration issues, start here.Use NODE_OPTIONS
(only for ESM)
Use with
NODE_OPTIONS
with caution, as this affects all Node.js processes in the environment and may introduce side effects.NODE_OPTIONS
environment variable:
Bundler compatibility (e.g., Next.js)
Some frameworks and bundlers, such as Next.js, may bundle third-party libraries in ways that break Node’s ability to patch them at runtime. If this describes your setup, try the following steps:-
Mark LLM libraries as external in your bundler configuration. This prevents them from being bundled, so Weave can patch them correctly at runtime.
The following example shows how to mark the
openai
package as external in anext.config.js
configuration, which prevents it from being bundled. The module is loaded at runtime, so Weave can automatically patch and track it. Use this setup when working with frameworks like Next.js to enable auto-instrumentation. - If patching still fails, fall back to manual instrumentation.
Manual patching (fallback option)
Manual patching is the legacy approach and should only be used when auto-patching doesn’t work.